package com.hava.film.timeline.xmeml.v5.entity;

import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;

import java.util.List;
import java.util.ArrayList;

@JacksonXmlRootElement(localName = "generatoritem")
public class Generatoritem {

    //作为node的attr
    @JacksonXmlProperty(isAttribute = true)
    public String id;

    //一个或者多个元素
    @JacksonXmlProperty(localName = "name")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<String> name = new ArrayList<String>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "duration")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<String> duration = new ArrayList<String>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "rate")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<Rate> rate = new ArrayList<Rate>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "enabled")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<String> enabled = new ArrayList<String>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "in")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<String> in = new ArrayList<String>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "out")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<String> out = new ArrayList<String>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "start")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<String> start = new ArrayList<String>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "end")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<String> end = new ArrayList<String>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "anamorphic")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<String> anamorphic = new ArrayList<String>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "alphatype")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<String> alphatype = new ArrayList<String>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "effect")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<Effect> effect = new ArrayList<Effect>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "sourcetrack")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<Sourcetrack> sourcetrack = new ArrayList<Sourcetrack>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "filter")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<Filter> filter = new ArrayList<Filter>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "timecode")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<Timecode> timecode = new ArrayList<Timecode>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "primarytimecode")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<String> primarytimecode = new ArrayList<String>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "alphareverse")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<String> alphareverse = new ArrayList<String>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "link")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<Link> link = new ArrayList<Link>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "logginginfo")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<Logginginfo> logginginfo = new ArrayList<Logginginfo>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "labels")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<Labels> labels = new ArrayList<Labels>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "comments")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<Comments> comments = new ArrayList<Comments>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "mediadelay")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<String> mediadelay = new ArrayList<String>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "fielddominance")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<String> fielddominance = new ArrayList<String>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "filmdata")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<Filmdata> filmdata = new ArrayList<Filmdata>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "subframeoffset")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<String> subframeoffset = new ArrayList<String>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "masterclipid")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<String> masterclipid = new ArrayList<String>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "compositemode")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<String> compositemode = new ArrayList<String>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "syncoffset")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<String> syncoffset = new ArrayList<String>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "marker")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<Marker> marker = new ArrayList<Marker>();

    //一个或者多个元素
    @JacksonXmlProperty(localName = "subclipmasterid")
    @JacksonXmlElementWrapper(useWrapping = false)
    public List<String> subclipmasterid = new ArrayList<String>();

}
